package com.googlecode.archimedes.filegen.model;

import java.util.Collection;

/**
 * @author John Lema, Erik Gustavson
 * @version $Id: Asset.java 443 2005-06-13 03:56:59 +0000 (Mon, 13 Jun 2005) erik $
 *
 * A super-interface for all objects in the meta-model. An Asset is defined as an object
 * that when combined with a Template, can be used to generate output.
 */
public interface Asset {

    /** 
     * @TODO Better to match templates to asset types via Classes rather than String.
     *
     public static final String ASSET_TYPE_ENTITY="Entity";
     public static final String ASSET_TYPE_APPLICATION="Application";
     public static final String ASSET_TYPE_MEMBER="Member";
     public static final String ASSET_TYPE_RELATIONSHIP="Relationship";
     
     
     public String getAssetType();
     **/
    public Collection<? extends Asset> getSubordinateAssets();

    public String getIdentifier();
}